#ifndef UTILITY_H
#define UTILITY_H

/**
 * @brief The Utility class 万能工具类
 */

#include <ctime>
#include <sstream>
#include <iostream>

//C++ 17
// #include <filesystem>
#include <string>
#include <cstdlib>
#ifdef _WIN32
#include <stdlib.h>
#else
#include <unistd.h>
#endif
#include <iomanip>

#include <QDateTime>
#include <QString>
#include<QDebug>
#include <QFileInfo>
#include <QDir>

using namespace std;
class Utility
{
//纯C++
public:
    static std::string getCurrentTimeAsString();
    // 获取当前时间的long long类型（以秒为单位，从1970 - 01 - 01 00:00:00 UTC开始计算）
    long long getCurrentTimeAsLongLong();
    // 将long long类型的时间（以秒为单位，从1970 - 01 - 01 00:00:00 UTC开始计算）转换为时间字符串
    std::string longLongToTimeString(long long seconds);
    std::pair<std::string, std::string> getTimeStrings(long long seconds);

    // 分割文件路径获取相关信息
    void splitFilePath(const std::string& filePath);

    std::pair<std::string, std::string> getCurrentTimeStrings();




//纯qt
public:
    static QString getCurrentTimeAsStringQt();
    // 获取当前时间的long long类型（以毫秒为单位，从1970 - 01 - 01 00:00:00 UTC开始计算）
    long long getCurrentTimeInQtAsLongLong();
    // 将long long类型的时间（以毫秒为单位，从1970 - 01 - 01 00:00:00 UTC开始计算）转换为时间字符串
    QString longLongToTimeStringQt(qint64 milliseconds);

    std::pair<QString, QString> getCurrentTimeStringsQt();
    std::pair<QString, QString> getTimeStringsQt(long long seconds);

    // 分割文件路径获取相关信息
    void splitFilePathQt(const QString& filePath);





public:
    Utility();
};
#endif // UTILITY_H
